如何快速获取Json字符串的深层次属性值? |
您所在的位置:网站首页 › js 遍历json 的值 › 如何快速获取Json字符串的深层次属性值? |
一、利用Jackson库
在上面的代码中,我们首先创建一个JSON字符串,并使用ObjectMapper类将其转换为JsonNode对象。然后我们可以使用get方法获取其属性值,如name、age和address.city。 import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonExample { public static void main(String[] args) throws Exception { String jsonString = "{\"name\":\"John\",\"age\":30,\"address\":{\"city\":\"New York\",\"state\":\"NY\"}}"; ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readTree(jsonString); String name = jsonNode.get("name").asText(); int age = jsonNode.get("age").asInt(); String city = jsonNode.get("address").get("city").asText(); System.out.println(name); System.out.println(age); System.out.println(city); } } 二、利用Gson库在上面的代码中,我们首先创建一个JSON字符串,并使用Gson类将其转换为JsonObject对象。然后我们可以使用get方法获取其属性值,如name、age和address.city。 需要注意的是,这里使用了Gson的fromJson方法来将JSON字符串转换为Java对象。第二个参数指定了要转换成的Java类类型,这里我们传入了JsonObject.class。 另外,需要注意JsonElement和JsonObject之间的区别。JsonElement是所有JSON元素(包括对象、数组、原始值等)的抽象基类,而JsonObject表示一个JSON对象。因此,在获取深层次属性时,需要先将JsonElement转换为JsonObject才能继续操作。 import com.google.gson.Gson; import com.google.gson.JsonObject; public class JsonExample { public static void main(String[] args) throws Exception { String jsonString = "{\"name\":\"John\",\"age\":30,\"address\":{\"city\":\"New York\",\"state\":\"NY\"}}"; Gson gson = new Gson(); JsonObject jsonObject = gson.fromJson(jsonString, JsonObject.class); String name = jsonObject.get("name").getAsString(); int age = jsonObject.get("age").getAsInt(); String city = jsonObject.getAsJsonObject("address").get("city").getAsString(); System.out.println(name); System.out.println(age); System.out.println(city); } } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |